Skip to main content

Porți logice

Porțile logice reprezintă componentele de bază disponibile în realizarea circuitelor combinaționale. Ele oglindesc operațiile din algebra booleană, algebră care stă la baza teoriei circuitelor combinaționale. În sunt prezentate cele mai întâlnite porți logice împreună cu operația booleană pe care o implementează.

DenumireSimbolOperatorabf
Inversor (NOT)NOT Gatef = !a01
10
Poarta SAU (OR)OR Gatef = a || b000
011
101
111
Poarta ŞI (AND)AND Gatef = a && b000
010
100
111
Poarta SAU-NU (NOR)NOR Gatef = !(a || b)001
010
100
110
Poarta ŞI-NU (NAND)NAND Gatef = !(a && b)001
011
101
110
Poarta SAU EXCLUSIV (XOR)XOR Gatef = a ^ b000
011
101
110
Poarta SAU EXCLUSIV NU (XNOR)XNOR Gatef = !(a ^ b)001
010
100
111

Table: Tabel de adevăr pentru porti logice elementare

Multiplexorul 4:1

Un multiplexor digital este un circuit combinațional care implementează o funcție de selecție a uneia dintre intrările sale.

  • 2n2^n intrări
  • nn intrări de selecție
  • o ieșire

Diagrama bloc a multiplexorului 4:1

Figure: Diagrama bloc a multiplexorului 4:1

Schema logică a multiplexorului 4:1

Figure: Schema logică a multiplexorului 4:1

Alegerea semnalului de ieșire se face pe baza intrărilor de selecție, care reprezintă în baza 2 numărul intrării ce trebuie selectate. În exemplul din imaginea de mai sus avem schema bloc a unui multiplexor cu 4 intrări, iar acesta are nevoie de două intrări de selecție.

Funcția inversă a multiplexorului este realizată de către circuitele de demultiplexare, care preiau un semnal de intrare și folosesc intrările de selecție pentru a-l transmite pe una din ieșirile posibile.

S2S1out
00I1
01I2
10I3
11I4

Table: Tabel de adevăr pentru multiplexorul 4:1

Deoarece multiplexorul 4:1 are 6 intrări, tabelul de adevăr devine destul de mare și nu mai este indicat de pornit de la acesta pentru obținerea funcției logice. Din descrierea funcționării circuitului și proprietățile porții AND, putem deduce termenii formulei:

f=sˉ1  sˉ2  I1 + s1 sˉ2  I2 + sˉ1  s2  I3 + s1  s2  I4f = \bar s_1\ \cdotp\ \bar s_2\ \cdotp\ I_1\ +\ s_1\ \cdotp \bar s_2\ \cdotp\ I_2\ +\ \bar s_1\ \cdotp\ s_2\ \cdotp\ I_3\ +\ s_1\ \cdotp\ s_2\ \cdotp\ I_4

Conform formulei se poate realiza circuitul cu porți logice din imaginea de mai sus.

int mux4to1(int s0, int s1, int i0, int i1, int i2, int i3) {
// Use the select value to choose the appropriate input
switch ((s1 << 1) | s0) { // Combine s0 and s1 into a 2-bit value
case 0:
return i0; // If s1 and s0 are both 0, return input i0
case 1:
return i1;
case 2:
return i2;
case 3:
return i3;
default:
return 0; // Default case (should never be reached)
}
}

Codul sursa pentru functia mux4to1